package io.hd;

import io.Archivo;
import java.io.File;
import java.io.IOException;

/**
 *
 * @author Mariano Zapata
 */
public class ControladorArchivo extends Thread {
    
    private Archivo logico;
    private File fisico;
    private GestorArchivo ga;
    private Process proceso;
    
    public ControladorArchivo(Archivo logico, File fisico, GestorArchivo ga)
    {
        this.fisico= fisico;
        this.ga= ga;
        this.logico= logico;
    }
    
    public Archivo obtenerArchivoLogico() {return logico;}
    
    public void destruir()
    {
        this.interrupt();
        proceso.destroy();
    }
    
    @Override
    public void run()
    {
        try {
            Runtime ejecutor= Runtime.getRuntime();
            proceso= ejecutor.exec(fisico.getAbsolutePath());
            proceso.waitFor();
            ga.aplicacionExternaCerrada(this);
        } catch (IOException ex) {ga.errorAbrirAplicacion(logico, ex.getMessage(), this);}
          catch (InterruptedException ex) {/*NADA*/}
    }
}
